home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 1 / Atari Mega Archive - Volume 1.iso / program / c_say.zoo / phonetic.c < prev    next >
C/C++ Source or Header  |  1992-09-30  |  2KB  |  71 lines

  1. /*
  2.  * demo des routines odieusement extraites de speaktex.tos
  3.  * - say_copyright: adresse du message de copyright. (on est honnete ou pas)
  4.  * - int say( int mode, char *buf)
  5.  *        mode == 0   -> retour immediat, silence en fin de phrase
  6.  *        mode == 1   -> attend la fin de la phrase
  7.  *        mode == 2   -> retour immediat, sans silence
  8.  *        mode == 3   -> test voix en cours
  9.  *        buf == NULL -> retour sans prononciation
  10.  *        *buf == 0   -> repetition phrase precedente
  11.  *
  12.  * - int set_pitch(int n):   fixe la hauteur du son (20 200).
  13.  * - int set_pitch(int n):   fixe la vitesse.
  14.  */
  15.  
  16.  
  17. #include <stdio.h>
  18. #include <stdlib.h>
  19.  
  20. extern char say_copyright[];
  21. extern int cdecl set_pitch(int);
  22. extern int cdecl set_rate(int);
  23. extern int cdecl say(int mode, ...);
  24.  
  25. main(argc, argv)
  26. int argc; char **argv;
  27. {
  28.     char buf[256];
  29.     int ret = 0;
  30.  
  31.     if (argc > 1) {
  32.     buf[0] = '\0';
  33.     while (argc-- > 1) {
  34.         strcat(buf, (++argv)[0]);
  35.         strcat(buf, " ");
  36.     }
  37.     say(1, buf);
  38.     exit(0);
  39.     }
  40.     printf(say_copyright);
  41.     printf("type '=number' for setting pitch, '#number' for setting rate\n");
  42.  
  43.     for (;;) {
  44.  
  45.     if (say(3)) {            /* multitachons un peu */
  46.         while (say(3)) {
  47.             int i;
  48.             putchar('.');
  49.             fflush(stdout);
  50.             for (i=0; i< 5000; i++);    /* tempo */
  51.         }
  52.         putchar('\n');
  53.     }
  54.     printf("(%d)Phonetic: ", ret);
  55.     if (gets(buf) == NULL)
  56.         break;
  57.     switch (buf[0]) {
  58.     case '=':
  59.         set_pitch(atoi(&buf[1]));
  60.         break;
  61.     case '#':
  62.         set_rate(atoi(&buf[1]));
  63.         break;
  64.     default:
  65.         ret = say(0, buf);
  66.     }
  67.  
  68.     }
  69.     say(1, NULL);
  70. }
  71.